访问电脑版页面

导航:老古开发网手机版51单片机51单片机汇编编程

C51单片机的压缩BCD码相加程序

导读:设被加数 NA 及加数 NB 均为三字节压缩BCD码,分别存放于内部 RAM 的 20H~22H 及 30H~32H 单元中,低位在前,高位在后。要求计算两数之和,并将和存放到内部 RAM 中 3FH~42H 单元,仍然是低位在前,高位在后。编写完
关键字:
c51单片机,压缩bcd码,相加程序,

设被加数 NA 及加数 NB 均为三字节压缩BCD码,分别存放于内部 RAM 的 20H~22H 及 30H~32H 单元中,低位在前,高位在后。

要求计算两数之和,并将和存放到内部 RAM 中 3FH~42H 单元,仍然是低位在前,高位在后。

编写完整的汇编语言源程序。

;----------------------------------------------------------------------

最佳答案:

;这个程序当然是楼主要求的C51单片机程序。

;下面增加一些调试时使用的数据。

ORG 0000H

MOV 20H, #12H ;假设被加数NA是563412

MOV 21H, #34H

MOV 22H, #56H

MOV 30H, #77H ;假设加数NB是998877

MOV 31H, #88H

MOV 32H, #99H

LCALL ADD3B ;调用3字节加法子程序

SJMP $ ;相加结束,暂停,此时可以观察到和的数值:1562289

;-----------------------------------------------

; 3字节加法子程序如下:

;相加数字的字节数不多,地址且有三个,故不用循环结构

ADD3B:

MOV A, 20H

ADD A, 30H

DA A

MOV 3FH, A

MOV A, 21H

ADDC A, 31H

DA A

MOV 40H, A

MOV A, 22H

ADDC A, 32H

DA A

MOV 41H, A

MOV A, #0

ADDC A, #0

MOV 42H, A

RET

来源:21ic   作者:wuq  2019/6/10 19:11:51
栏目: [ 51单片机汇编编程]

相关阅读

在 KEIL C51 中如何直接嵌入汇编

在C51中如何实现汇编的DA A指令?

#pragma asm是什么意思?

51单片机对交通灯的控制设计

请问怎样用89C51采集多路脉冲信号?

CRC16-STANDARD的快速算法,51汇编

双字节十六进制小数转换成双字节BCD码小数

MCS-51单片机汇编伪指令的用法解析

MCS-51单片机实用子程序库

C51单片机的压缩BCD码相加程序

汇编中的ORG 0X0000H 在C51中如何实现

51单片机汇编语言-延时程序的延时时间

MCS-51单片机布尔处理功能解析

16位数据传送指令(1条)——mcs51单片机汇编语言

MCS-51单片机地址指针的应用

MCS-51单片机实用子程序库--浮点数除法

MSC-51单片机的3字节和4字节浮点数计算程序分析

使用汇编,中断响应后RETI返回后没有回到原处,而是回到另外一处,如何解决

单片机双机并行通信中所遇问题

51单片机的汇编语言指令中英文对照